package bit_operation;

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        shaOperation();
        System.out.println(~1);
    }


    /**
     * 移位操作 <<即让数字的比特位总体的像前移指定的单位 如1<<3代表者00000001->00001000 换算成10进制就是把1*（2的3次方）
     *         >>即让数字的比特位总体的像后移指定的单位 如23<<3代表者00010111->00000010 换算成10进制就是把23/（2的3次方）舍去余数
     */
    public static void shaOperation(){
        System.out.println("左移===================");
        System.out.println(1<<3);
        System.out.println(1<<4);
        System.out.println(6<<3);
        System.out.println(6<<4);
        System.out.println("右移===================");
        System.out.println(1>>3);
        System.out.println(24>>3);
        System.out.println(23>>3);
        System.out.println(24>>4);
        System.out.println("===================");
    }

    /**
     * 与& 相同位全1取1 其他0
     * 或| 相同位有1取1
     * 异或^ 相同为相同则为1 不同则为0
     * 取反~
     *
     */
    public static void opetation2(){

    }

    //高位在前，低位在后
    public static byte[] int2bytes(int num){
        byte[] result = new byte[4];
        result[0] = (byte)((num >>> 24) & 0xff);//说明一
        result[1] = (byte)((num >>> 16)& 0xff );
        result[2] = (byte)((num >>> 8) & 0xff );
        result[3] = (byte)((num >>> 0) & 0xff );
        return result;
    }
}
